自主可控+安全高效,Gitee Repo 带你重新认识制品库
什么是制品和制品库
软件行业著作《人月神话》中有这样一个观点:“软件是一个集合,是程序+数据+文档的集合”。正如作者所言,在现在的软件开发协作的过程中会涉及到各种类型的「研发物料」,例如产品侧产出的原型及文档,开发侧在项目中应用到的各种依赖包,测试产出的测试报告,运维的各类运维手册等等。
我们可以将这类「研发物料」统一称为制品,制品库则是用于存储各种类型制品的存储仓库。
如果忽略制品库的使用,缺乏完善的制品管理与防护体系,将会为制品的高效使用,版本可信追溯,开源漏洞治理以及跨团队协作等带来严峻的困难与挑战,进而阻碍企业实现高效率、高质量、低成本的产品交付目标。
Gitee Repo 助力构建企业级唯一可信源
因此,以构建企业级唯一可信源为宗旨,以实现制品的唯一可信性为核心目标,Gitee 团队打造了Gitee Repo,并形成了完善的解决方案:
自主知识产权,底层完全自主可信,适配多种的国产芯片、操作系统、中间件、数据库,具备多家信创互认证。 支持 JFrog、Nexus、Harbor 等主流制品库一键迁移存量制品,实现企业快速、平稳的资产迁移。 综合性制品管理,提供了以全语言门类制品为中心的多维度制品管理。 跨节点制品晋级、分发、流转,支持跨地域、跨机房、跨网络的制品分发和一致性溯源。 守护软件供应链安全,集成全量漏洞数据库与 SCA 扫描引擎,统一漏洞扫描和开源组件治理,守护软件供应链安全。 适应企业权限管控,基于自定义 RBAC 权限管理模型满足企业内部对于仓库资源及用户的管理。 提供丰富的 Open Api,支持集成 Gitee Pipe 流水线、Delivery 集成交付、Depoly 应用部署等 CI/CD 域产品,并支持对接 Jenkins 等自动化工具。
完善的制品管理方案
制品作为软件研发工作中重中之重的生产资产,需要完善的制品管理方案进行管理。Gitee Repo 以制品为中心,通过多语言协议、多类型仓库、制品轨迹、制品图谱等多个维度建设了综合性的制品管理平台。
多语言协议
Gitee Repo 为支持各语言开发者需求,不断扩展各类语言协议,当前支持包括 Maven、Npm、Docker、Python、Helm、Go、C/C++ 等主流格式在内的18种常见包类型,并且为便于开发者的日常使用,天然适配协议客户端,在日常使用场景中仅需将相关仓库配置写入客户端配置文件,即可实现制品的快速推送与依赖拉取。制品库融入开发者日常开发环节,通过仓库提供的配置、发布、拉取访问指引引导使用者的日常使用。
多类型仓库
Gitee Repo 支持本地、远程、虚拟、联合四种类型仓库,需要根据实际场景进行选择:
本地仓库:本地仓库可用于发布软件研发产物,亦可提供制品的拉取与下载能力。 远程仓库:可通过远程仓库拉取外部资源,如通过远程仓库可拉取 Maven 中央仓库各类依赖。 虚拟仓库:虚拟仓库作为各类仓库的集合,可将各类型仓库添加至虚拟仓库实现制品的统一应用。 联合仓库:通过建立一个信任圈实现信任圈仓库内制品的完全一致性,实现不同实例中仓库的统一管理。
制品轨迹
从整个DevOps流程角度来看,一次软件发布流程包括需求-->编码-->构建-->部署-->测试-->晋级-->生产,Gitee Repo会收集流程中产生的信息以元数据的方式存储,以时间为纬度组织串联这些数据,形成制品独一无二的轨迹,这个轨迹也将作为制品溯源的重要依据,Gitee Repo依靠本身强大的集成能力,可不断扩展轨迹数据源。
制品图谱
从一个开发场景来看,通过流水线或开发者本地构建生成的制品包往往需要很多依赖性制品的支撑,而很多依赖往往非常通用,比如前端常用的 Ramda 函数库会被多个项目的开发者共同引用。
为便于企业管理者更细粒度的洞察企业内部工程的引用情况,Gitee Repo 支持通过制品图谱来查看一个制品相关联的其他制品,通过制品图谱展现了一张「制品依赖关系网」。在一些特殊情况下,比如某个公共性组件出现了相关安全风险问题,通过制品图谱的追踪网络可以快速感知到与此组件相关的其他制品,开发者便可顺藤摸瓜解决令人头疼的链路追踪问题。
多场景的企业权限管控
作为企业内部标准化软件研发工具链流程产物,制品是企业内部的核心资产,权限管控是制品库非常重要的产品能力,Gitee Repo 通过多场景的企业权限管控,为企业用户提供了高安全性的仓库权限管理方案。
仓库资源在使用场景中可分为公共仓库与团队仓库,可通过公共仓库为企业内部成员提供公共资源的访问,如对于各团队都需访问的 Maven 依赖,则可创建公共仓库,对于一些团队来说需要一个「私域」保证团队内制品的安全性,此时可创建团队空间,在团队空间内创建仓库,则可保障团队空间内仓库与公共仓库的隔离。
对于公共类型仓库可通过编辑权限进行管理,在权限管理中添加仓库,并且支持配置路径级别将权限收束至仓库路径级别,指定可访问的企业人员,为人员赋予仓库的操作权限,并可指定权限管理员管理权限实现公共仓库的统一管理,在日常使用场景中建议为公共类型仓库赋予读取和发布权限以保证公共资源的安全性。
对于团队类型仓库,可通过角色的方式进行管理,邀请成员加入空间,并为成员赋予角色,在赋予角色后成员即拥有空间内仓库资源的访问权限,在通过各语言协议客户端访问仓库时即按权限进行管控,同时可指定空间管理员对空间内的仓库、成员、以及角色进行管理。
守护软件供应链安全
制品安全作为DevSecOps中的重要理念,倡导在流程各个环节加入安全策略来保障制品在流转过程中的安全性与合规性。对于软件开发行业而言,会引用很多很多的第三方依赖和软件,但这部分软件其实存在很多的安全隐患,2021年末曝出的Log4j安全漏洞,漏洞编号为CVE-2021-44228,据不完全统计,直接和间接引用Log4j的开源组件超过18万个,通过开源组件的直接或间接引用编织了一张影响范围极广的漏洞传播网络。
为了保障守护企业内部制品安全,Gitee Repo提供了完善的制品安全方案以守护软件供应链安全:
无论是开发者构建的产物还是各类远程开源依赖,在推入到制品库后都可以借助SCA安全引擎的扫描能力进行安全扫描,在此SCA安全引擎将会与可信漏洞库进行比对,漏洞库数据来源官方、实时更新,保证漏洞数据的及时性与可靠性,在获取到扫描结果后根据仓库配置的安全策略生成安全风险,并及时进行阻断管控,防止风险制品的传播。
全量漏洞数据库
Gitee Repo 通过收集 CVE、NVD、CNVD、CNNVD 等多个权威漏洞数据库汇聚为一个全量漏洞数据库,并通过 Gitee 的专业安全团队深度挖掘各类开源制品中未披露的隐藏风险,及时更新漏洞数据,保证漏洞库数据的时效性与广泛性,这可以为企业提供更多"0day"漏洞数据以及早的解决安全风险,降低风险的影响范围。
全量制品安全扫描
通过 Gitee Repo SCA 安全引擎的扫描能力,可分析软件中所引用的开源软件、组件以及中间件生成 SBOM(软件物料清单),同时对其引用内容进行安全和合规性分析,可识别、追踪第三方组件本身存在的各类安全漏洞和所引用的开源许可证,从而提高软件安全性以及合规性。
入库前制品扫描
安全策略配置
不同企业对于制品安全存在不同的管理策略,制品安全也需要根据企业实际情况「因地制宜」。Gitee Repo 支持配置漏洞和许可证安全策略,可以通过漏洞危害等级或 CVSS 评分针对性的寻找漏洞,也可以通过黑白名单限制具有引用风险的许可证,并可配置相关阻断策略,借助 SCA 安全引擎的扫描能力在漏洞数据的基础上生成安全风险统计并阻断此类风险制品的传播。
风险监控
风险监控是各项安全扫描结果的集合,在风险监控中可定义仓库所需要应用的安全策略,进而可直接在安全风险策略中洞察仓库内部制品所产生的安全风险。Gitee Repo 能够在风险数据的基础上提供相关修复建议,从而解决安全风险,保证制品的绝对安全。
跨节点制品安全流转
在一些大型软件开发项目中,经常会出现开源依赖不安全、多团队协同且跨地域等复杂问题,此时单一节点的制品库实例无法满足各个环节的场景化需求,往往需要部署多个制品库实例共同构建安全可信制品流转集群。
Gitee Repo 支持开源风险治理,在开源组件 DMZ 隔离区可拉取分散的公网开源依赖,也可选择订阅 Gitee Repo 可信中心仓拉取安全可信依赖,在此将进行依赖制品的安全扫描以确保公网依赖的安全可信,并将通过安全扫描的开源依赖同步至一个可信依赖组件库,可信依赖制品库为开发环节提供全量安全可信软件依赖源。
在开发完毕后开发人员可将制品推送至构建物制品存储库,根据测试结果执行制品晋级将制品流转至晋级制品存储库,在研发中心与部署中心一对多的情况下可通过制品分发将制品推送至分散在各个区域的边缘节点,边缘节点具有快速、低延迟的优势,快速、稳定支撑各类部署。
可信中心仓
可信中心仓从全球筛选高可靠开源软件源,自动跟踪、存储海量开源软件,并通过软件成分分析(Software Composition Analysis)、漏洞情报比对、投毒风险识别、开源软件维护性评估、开源许可证分析、开源软件签名验证等多种技术进行持续评估与保障。企业和机构能够便捷地将开源中心仓作为开源软件源加入本地软件制品管理工具或开发环境,获得经过评估的开源软件以及各类相关实时开源风险统计,免除高昂的建设与维护投入,实现主动和统一的开源软件管理。
制品同步
制品同步既可以基于事件又可以基于定时任务。事件同步基于异步实现,当源仓库制品发生事件类变更(如发布、复制、移动或删除制品)时会近乎实时性的快速将变更同步至目标仓库;定时任务根据同步配置,按同步周期批量性同步。通过制品同步可实现跨仓库间制品实时或周期性同步,结合同步配置可满足企业不同场景下制品同步需求。
制品晋级
在软件开发工作中,软件的上线往往需要进行多轮的严密测试,在企业内部通常会根据测试阶段将环境划分为sit、uat、pre-prod等多个环境,在日常的测试工作中也会根据测试结果将制品一级一级的晋级到下一阶段的制品库。
Gitee Repo满足跨环境的制品晋级,通过校验和保证制品晋级结果的绝对准确与可信性,并增加制品晋级策略,通过晋级策略管控上游制品的准出与下游制品的准入性,通过制品元数据、构建数据、测试数据等多维晋级策略满足企业内部对于合规性晋级的需求。
边缘节点制品分发
边缘节点具有快速、低延迟的特性,用于加速边缘实例访问并可提高可靠性。边缘节点可以自动缓存和同步主制品库的制品,对于分布在各个区域的团队访问边缘节点本地制品和缓存制品库时获取到的是主制品库数据,这保障了分布在不同区域的团队不需要进行过多请求操作即可获取主制品库数据,边缘节点不但便于企业内部的制品统一管控又保障了制品跨节点的快速流转。
以一个场景为例:A 公司是一家综合性大型金融企业,企业内部同时有多个软件开发团队在进行并行开发,而这些团队统一由一个「软件开发管理中心」管理。在很多时候,管理人员需要将一份重要制品同时发送给多个团队使用,在此场景下则可进行「集群化」部署,「软件开发管理中心」为主节点,而各个软件开发团队则为分散的边缘节点,Gitee Repo 支持通过制品分发满足企业内部主节点向各个边缘节点的制品分发。
多工具集成支持
制品库作为 DevOps 流程中的重要一环,扮演了「软件开发物料」中心的角色,需要支持对接各类 DevOps 流程工具。
Gitee Repo 在开发领域提供了完善依赖拉取、存储机制,在 CI/CD(持续集成/持续部署)领域 Gitee Repo 支持集成 Gitee Pipe 流水线的构建能力、Delivery 集成交付的应用发版能力、Depoly 应用部署的部署能力,并支持对接Jenkins 等自动化工具,实现开发团队自动归档构建软件产物,运维团队按需拉取软件包部署,保障企业软件研发各个角色对制品的高效使用与合规管理。
此外,Gitee Repo 还支持如OAuth SSO单点登录、网络代理、多维清理、备份策略、和存储监控等其他功能,为企业提供了全面的综合性制品管理平台,满足了企业内部在软件研发数据链中关于制品管理的各项需求。
自主可控,行业共享
Gitee Repo 正逐步构建国家级可信开源制品依赖仓库,搭建稳定可靠的制品共享中心,同时也会将共享 Gitee Repo 强大的安全守护能力,保护行业知识产权,并会建立制品安全可信源保障开源制品的安全性,为行业伙伴提供安全可靠的开源制品存储和分发仓库。
此外,Gitee Repo 作为 Gitee DevOps 产品矩阵中的关键一环,拥有完整自主知识产权,底层完全自主可信,适配多种的国产芯片、操作系统、中间件、数据库,具备多家信创互认证。
Gitee DevOps 产品矩阵已构建了完整的国产软件替代方案,系列产品覆盖了软件工程中需求管理、代码管理、协作管理、制品管理等全流程工具,为金融、央企、军工、高端制造等行业大客户提供了一站式 DevOps 工具平台。
扫描下方二维码,立即咨询您的专属制品库解决方案。